Problem with sys.argv[1] when unittest module is in a script
Posted
by chrissygormley
on Stack Overflow
See other posts from Stack Overflow
or by chrissygormley
Published on 2010-05-11T15:57:01Z
Indexed on
2010/05/11
16:14 UTC
Read the original article
Hit count: 259
Hello,
I have a script that does various things and access paramenters using sys.argv but when the script gets to the unittest part of the code it says there is no module for this. The script that I have is:
class MyScript():
def __init__(self):
self.value = sys.argv[1]
def hello(self):
print self.value
def suite(self):
modules_to_test = ('external_sanity_onvif', 'starttest')
alltests = unittest.TestSuite()
for module in map(__import__, modules_to_test):
alltests.addTest(unittest.findTestCases(module))
return alltests
if __name__ == '__main__':
Run = MyScript()
Run.hello()
log_file = 'log_file.txt'
test_file = open(log_file, "w")
runner = unittest.TextTestRunner(test_file)
unittest.main(defaultTest='Run.suite', testRunner=runner)
Say I enter ./script.py Hello in the command line. The error I get is:
AttributeError: 'module' object has no attribute 'Hello'
If I remove the unittest module it works. Also if I remove the testrunner log and leave it at:
unittest.main(defaultTest='Run.suite')
This still doesn't work.
Can anyone help.
Thanks
© Stack Overflow or respective owner